﻿#ifndef WIDGET_GPIO_OUTPUT_H
#define WIDGET_GPIO_OUTPUT_H

#include "arrow_item.h"
#include "gpio_info.h"

#include <QComboBox>
#include <QGraphicsView>
#include <QWidget>

namespace Ui {
class Widget_GPIO_Output;
}

class Widget_GPIO_Output : public QWidget
{
    Q_OBJECT

public:
    explicit Widget_GPIO_Output(QWidget *parent = nullptr);
    ~Widget_GPIO_Output();
    QGraphicsView *view;//View层的画图区域，实际只起到显示图像和传递鼠标事件。
    QGraphicsScene *scene;//Controller层的实际的画图操作区域，处理MainView传来的鼠标事件。
    QPen* pen;//画笔风格的设置，写成指针是为了同步修改风格而不必每次传值。
    QBrush* brush;
    //scene item

    QGraphicsPathItem * item_path;
    ArrowItem * arrow_0;
    ArrowItem * arrow_1;
    ArrowItem * arrow_2;
    QGraphicsLineItem * line_1;

    QGraphicsPathItem * user_path;
    ArrowItem * arrow_3;
    ArrowItem * arrow_4;
    QGraphicsLineItem * line_3;

   QPushButton* btnBus;
    QComboBox * user_default;

    QCheckBox * btnFlip ;
    QLabel * labelPin;
    QPushButton * btnUser;

    QLineEdit * remote_id;
    QLineEdit * remote_bit ;
    int gpio_id;
    QString com_name;
    GPIO _gpio;
    void initChart( QString com, int id);
    void updateChart( );


signals:
    void changePage();


private slots:
    void on_pushButton_save_clicked();

    void on_pushButton_read_clicked();

private:
    Ui::Widget_GPIO_Output *ui;
};

#endif // WIDGET_GPIO_OUTPUT_H
